package com.xinli.business.domain;

import java.math.BigDecimal;
import java.util.Date;

import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;

import com.xinli.common.annotation.Excel;
import com.xinli.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * 订单对象 t_order
 *
 * @author ruoyi
 * @date 2025-03-17
 */
@Data
@TableName(value = "t_order")
@EqualsAndHashCode(callSuper = true)
public class TOrder extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * $column.columnComment
     */
    @TableId(type = IdType.ASSIGN_ID)
    private String id;

    /**
     * "订单编号"
     */
    @Excel(name = "订单编号")
    private String orderNo;

    /**
     * "用户Id"
     */
    @Excel(name = "用户Id")
    private String userId;

    /**
     * "咨询师Id"
     */
    @Excel(name = "咨询师Id")
    private String zxsId;

    /**
     * "实付金额"
     */
    @Excel(name = "实付金额")
    private BigDecimal totalPrice;

    /**
     * "订单状态  1待付款  2 已付款(待咨询)  3 已完成  4失败"
     */
    @Excel(name = "订单状态")
    private String orderStatus;

    /**
     * "下单时间"
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "下单时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date orderTime;

    /**
     * "完成时间"
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "完成时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date finallyTime;

    /**
     * "取消时间"
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "取消时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date cancelTime;

    /**
     * "咨询开始时间"
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "咨询开始时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date startDate;

    /**
     * "咨询结束时间"
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "咨询结束时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date endDate;

    /**
     * "支付时间"
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "支付时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date payTime;

    /**
     * "是否已经支付，1：已经支付过   0：，没有支付过"
     */
    @Excel(name = "是否已经支付，1：已经支付过   0：，没有支付过")
    private String isPayed;

    @Excel(name = "评价状态：  1 已评价   0 未评价")
    private String isComment;


    //微信支付平台订单号
    private String outTradeNo;



    // 是否退款 1 已退款 0 没有退款
    private String isRefund;

    /**
     * "申诉: 0:申诉处理中 1:申诉成功  2:申诉失败"
     */
    @Excel(name = "申诉状态: 0:申诉处理中 1:申诉成功  2:申诉失败")
    private String refundStatus;

    /**
     * "订单关闭原因 1-超时未支付 2-退款关闭 4-买家取消 15-已通过货到付款交易"
     */
    @Excel(name = "订单关闭原因 1-超时未支付 2-退款关闭 4-买家取消 15-已通过货到付款交易")
    private String closeType;

    /**
     * "订单标题"
     */
    @Excel(name = "订单标题")
    private String title;

    /**
     * "会议信息"
     */
    @Excel(name = "会议信息")
    private String meetInfo;





    /**
     * "咨询师姓名"
     */
    @TableField(exist = false)
    private String  zxsname;

    /**
     * "咨询师头像"
     */
    @TableField(exist = false)
    private String  zxsavatar;


    /**
     * "用户姓名"
     */
    @TableField(exist = false)
    private String  username;

    /**
     * "用户头像"
     */
    @TableField(exist = false)
    private String  useravatar;

    /**
     * "时长"
     */
    @TableField(exist = false)
    private Long  durationMinutes;

    /**
     * "距离预约时长"
     */
    @TableField(exist = false)
    private Long  yyMinutes;


    /**
     * ""
     */
    @TableField(exist = false)
    private String norefundStatus;











}
